bpo-36794: Document that Lock.acquire is fair.#13082
bpo-36794: Document that Lock.acquire is fair.#13082miss-islington merged 1 commit intopython:masterfrom
Conversation
|
Hello, and thanks for your contribution! I'm a bot set up to make sure that the project can legally accept your contribution by verifying you have signed the PSF contributor agreement (CLA). Unfortunately we couldn't find an account corresponding to your GitHub username on bugs.python.org (b.p.o) to verify you have signed the CLA (this might be simply due to a missing "GitHub Name" entry in your b.p.o account settings). This is necessary for legal reasons before we can look at your contribution. Please follow the steps outlined in the CPython devguide to rectify this issue. You can check yourself to see if the CLA has been received. Thanks again for your contribution, we look forward to reviewing it! |
|
Hi @hniksic @the-knights-who-say-ni can't validate if you have signed the CLA because you have not yet associated your BPO account with your GitHub account. Please, could you do it and sign the CLA? Without that, your issue could be closed in the future and your contribution won't be merged. Thank you |
| waiting for the lock to be unlocked, only one coroutine | ||
| eventually proceeds. | ||
|
|
||
| Acquiring a lock is *fair*: the coroutine that proceeds will be |
There was a problem hiding this comment.
I don't quite understand what you mean by "fair"? It reads oddly to me.
There was a problem hiding this comment.
"Fair" is a standard term for the kind of lock that avoids starvation by treating waiters as first-come first-serve; see e.g. here.
It should be fine if someone is not familiar with the term because the rest of the sentence explains it.
There was a problem hiding this comment.
I see fair in multithreading context first time here.
Not sure if this is standard term.
Can we avoid this word in documentation?
There was a problem hiding this comment.
The term fair is widely used in this meaning across programming languages, e.g. kotlin, java, golang, c++, Python.
The idea is to use the technical term to help people already familiar with the concept, and also explain it in the rest of the sentence. That kind of usage doesn't hinder understanding, and it can even help the reader when encountering the term later.
There was a problem hiding this comment.
In mentioned links fairness is used in java. kotlin inherits this term.
Golang has fairness in documentation only.
C++ and Python links point on stackoverflow which is nice site but not the official python documentation.
Docs for python threading doesn't mention fairness. I think if we add the term we should enumerate it in python glossary as well.
I still not convinced that this is required
There was a problem hiding this comment.
I think using "fair" is fine here, but not really necessary as the text after the colon explains it in detail anyways.
|
Thanks, @hniksic |
|
Thanks @hniksic for the PR 🌮🎉.. I'm working now to backport this PR to: 3.7. |
|
Sorry @hniksic, I had trouble checking out the |
|
@hniksic if you want to backport to 3.7 please make a PR using |
|
Let me first retry the backport with miss-islington |
|
Thanks @hniksic for the PR 🌮🎉.. I'm working now to backport this PR to: 3.7. |
|
GH-13659 is a backport of this pull request to the 3.7 branch. |
https://bugs.python.org/issue36794 (cherry picked from commit 34f4f5e) Co-authored-by: Hrvoje Nikšić <hniksic@gmail.com>
https://bugs.python.org/issue36794 (cherry picked from commit 34f4f5e) Co-authored-by: Hrvoje Nikšić <hniksic@gmail.com>
https://bugs.python.org/issue36794